.TH DUP 3
.SH NAME
dup \- duplicate an open file descriptor
.SH SYNOPSIS
.B #include <u.h>
.br
.B #include <libc.h>
.PP
.B
int dup(int oldfd, int newfd)
.SH DESCRIPTION
Given a file descriptor,
.IR oldfd ,
referring to an open file,
.I dup
returns a new file descriptor referring to the same file.
.PP
If
.I newfd
is \-1 the system chooses the lowest available file descriptor.
Otherwise,
.I dup
will use
.I newfd
for the new file descriptor
(closing any old file associated with
.IR newfd ).
.SH SOURCE
.B \*9/src/lib9/dup.c
.SH DIAGNOSTICS
Sets
.IR errstr .
.SH BUGS
To avoid name conflicts with the underlying system,
.I dup
is a preprocessor macro defined as
.IR p9dup ;
see
.IR intro (3).
